<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Exceptions -- Soya 1.0.1-alpha</title>
    <link type="text/css" rel="stylesheet" href="../css/style.css">
</head>
<body>
    <div class="background">
        <div>
            <h2>异常</h2>
        </div>
        <div>
            您可以像在java中一样使用 throw 关键字抛出异常。不过并不需要像在java中那样在方法定义中写上异常的类型签名
        </div>
        <div class="code">
            <pre>
def doSomething() {
    throw new Exception('something wrong')
}
            </pre>
        </div>
        <div>
            您可以通过 try catch 代码块来捕获异常。但与java不同的是并没有提供 finally 代码块，而且不能联系定义多个 catch 代码块，如果要分别处理不同类型的异常对象的话需要通过 match 来结合使用
        </div>
        <div class="code">
            <pre>
try {
    ...
} catch(e) {
    e metch
      | ExceptionA -> ...
      | ExceptionB -> ...
      | _          -> ...
}
            </pre>
        </div>
    </div>
</body>
</html>